package com.rightsidetech.http.aspect;

import com.rightsidetech.commom.enums.ModifyName;
import com.rightsidetech.commom.service.IService;
import com.rightsidetech.http.log.parser.DefaultContentParse;

import java.lang.annotation.*;

/**
 * @author yhr
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ModifyLog {
    /**
     * @return 操作的中文说明 可以直接调用ModifyName
     */
    ModifyName modifyType() default ModifyName.UPDATE;
    /**
     * @return 获取编辑信息的解析类，目前为使用id获取，复杂的解析需要自己实现，默认不填写
     *       则使用默认解析类
     */
    Class parseClass() default DefaultContentParse.class;
    /**
     * @return 查询数据库所调用的class文件
     */
    Class serviceClass() default IService.class;
    /**
     * @return id的类型
     */
    Class idType() default Long.class;
    /**
     * @return id的字段名
     */
    String idField() default "id";
    /**
     * @return list类型需要传实体类型
     */
    Class entityClass() default IService.class;
}
